#ifndef __Scene_Transformable_h__
#define __Scene_Transformable_h__

#include "Core/VecMath.h"

namespace vital {

	//--------------------------------------------------------------------------
	class TTransformable {

	public:
		TTransformable();
		~TTransformable();

		TMtx4 getWorldTransform();

		void moveAbs(const TVec3 &val);
		void moveRel(const TVec3 &val);

		void yaw(float val);
		void pitch(float val);
		void roll(float val);

		void magnify(float val);

		void resetXForm();

	protected:
		TVec3 mTrans;
		TVec3 mRot;
		float mScale;

		bool mXFormDirty;
		TMtx4 mXForm;
	};

}

#endif	// __Scene_Transformable_h__